﻿<?xml version="1.0" encoding="utf-8"?>
<configurationSectionModel dslVersion="1.0.0.0" Id="94673796-cf2a-437d-a44f-ff9c407c32fe" namespace="MetaCollection.Framework.Configuration" xmlSchemaNamespace="uri://MetaCollection/v2/" xmlns="http://schemas.microsoft.com/dsltools/ConfigurationSectionDesigner">
  <configurationElements>
    <configurationSection name="CollectionConfigurationSection" documentation="MetaCollection Configuration" codeGenOptions="Singleton, XmlnsProperty" xmlSectionName="collectionConfiguration">
      <elementProperties>
        <elementProperty name="RootNodes" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="rootNodes" isReadOnly="false" documentation="A Collection of Root Nodes in this Collection">
          <type>
            <configurationElementCollectionMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/ItemReferenceCollection" />
          </type>
        </elementProperty>
        <elementProperty name="Providers" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="providers" isReadOnly="false" documentation="Listing of modules that provide request implementation functionality">
          <type>
            <configurationElementCollectionMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/ProviderReferenceCollection" />
          </type>
        </elementProperty>
        <elementProperty name="Repositories" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="repositories" isReadOnly="false" documentation="Data Sources for this collection. At least one Item, Resource and Model Repository should be included">
          <type>
            <configurationElementCollectionMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/TypeReferenceCollection" />
          </type>
        </elementProperty>
      </elementProperties>
    </configurationSection>
    <configurationElementCollection name="ItemReferenceCollection" documentation="Collection of Root Nodes" collectionType="AddRemoveClearMap" xmlItemName="root" codeGenOptions="Indexer, AddMethod, RemoveMethod">
      <attributeProperties>
        <attributeProperty name="Default" isRequired="false" isKey="false" isDefaultCollection="false" xmlName="default" isReadOnly="false" documentation="Default Root Node">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/Guid" />
          </type>
        </attributeProperty>
      </attributeProperties>
      <itemType>
        <configurationElementMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/ItemReferenceElement" />
      </itemType>
    </configurationElementCollection>
    <configurationElement name="ItemReferenceElement" documentation="An Item Reference maps an item's name to a GUID">
      <attributeProperties>
        <attributeProperty name="Name" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="name" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="Id" isRequired="true" isKey="true" isDefaultCollection="false" xmlName="id" isReadOnly="false" documentation="Guid of the Item">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/Guid" />
          </type>
        </attributeProperty>
      </attributeProperties>
    </configurationElement>
    <configurationElementCollection name="ProviderReferenceCollection" documentation="Collection of item providers that implement functionality in this system" collectionType="AddRemoveClearMap" xmlItemName="provider" codeGenOptions="Indexer, AddMethod, RemoveMethod">
      <itemType>
        <configurationElementMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/ProviderReferenceElement" />
      </itemType>
    </configurationElementCollection>
    <configurationElement name="ProviderReferenceElement" documentation="A Provider is a module which implements request processing functions through registering for events." hasCustomChildElements="true">
      <attributeProperties>
        <attributeProperty name="Name" isRequired="true" isKey="true" isDefaultCollection="false" xmlName="name" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="TypeName" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="typeName" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="AssemblyName" isRequired="false" isKey="false" isDefaultCollection="false" xmlName="assemblyName" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
      </attributeProperties>
    </configurationElement>
    <configurationElement name="TypeReferenceElement" documentation="ection information and an interface type that provides a data source to the collection" hasCustomChildElements="true">
      <attributeProperties>
        <attributeProperty name="TypeName" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="typeName" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="AssemblyName" isRequired="false" isKey="false" isDefaultCollection="false" xmlName="assemblyName" isReadOnly="false">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="Name" isRequired="true" isKey="true" isDefaultCollection="false" xmlName="name" isReadOnly="false" documentation="Unique name for the Reference">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/String" />
          </type>
        </attributeProperty>
        <attributeProperty name="InterfaceType" isRequired="true" isKey="false" isDefaultCollection="false" xmlName="kind" isReadOnly="false" documentation="Type of this Repository">
          <type>
            <externalTypeMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/RepositoryReferenceType" />
          </type>
        </attributeProperty>
      </attributeProperties>
    </configurationElement>
    <configurationElementCollection name="TypeReferenceCollection" documentation="A collection of data repository references" collectionType="AddRemoveClearMap" xmlItemName="reference" codeGenOptions="Indexer, AddMethod, RemoveMethod">
      <itemType>
        <configurationElementMoniker name="/94673796-cf2a-437d-a44f-ff9c407c32fe/TypeReferenceElement" />
      </itemType>
    </configurationElementCollection>
  </configurationElements>
  <typeDefinitions>
    <externalType name="String" namespace="System" />
    <externalType name="Boolean" namespace="System" />
    <externalType name="Int32" namespace="System" />
    <externalType name="Int64" namespace="System" />
    <externalType name="Single" namespace="System" />
    <externalType name="Double" namespace="System" />
    <externalType name="DateTime" namespace="System" />
    <externalType name="TimeSpan" namespace="System" />
    <externalType name="Guid" namespace="System" />
    <externalType name="RepositoryReferenceType" namespace="MetaCollection.Framework.Configuration" />
  </typeDefinitions>
</configurationSectionModel>